
local 藏宝阁 = 多开数据[多开数据.当前].__UI界面.窗口层:创建我的窗口("藏宝阁",0,0,760,410)
local 当前 = 多开数据.当前
local floor = math.floor
local ceil = math.ceil
local insert = table.insert
local format = string.format
local 菜单 = {
	装备商城 = {"装备名称","装备等级","装备类型","购买价格","剩余时间"},
	灵饰商城 = {"灵饰名称","灵饰等级","灵饰类型","购买价格","剩余时间"},
	宝宝商城 = {"宝宝名称","宝宝等级","宝宝类型","购买价格","剩余时间"},
	银两商城 = {"银两名称","银两数量","银两类型","购买价格","剩余时间"},
	道具商城 = {"物品名称","物品数量","物品单价","购买价格","剩余时间"},
	角色商城 = {"角色名称","角色等级","角色门派","购买价格","剩余时间"},	
	我的商城 = {"名称","等级","状态","价格","剩余时间"},	
	寄存取回 = {"名称","等级/数额","类型"},	
}

function 藏宝阁:初始化()
    __置窗口坐标(self)
    local nsf = require('SDL.图像')(760,410)
    if nsf:渲染开始() then
        置窗口背景("藏宝阁",0,12,750,400,true):显示(0,0)
		取白色背景(0, 0, 710, 300,true):显示(15,75)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 藏宝阁:打开(数据,点卡)
	self.装备商城:置选中(true)
	self.类型="装备商城"
	self.编号=1
	self.数据=数据 or {}
	self.点卡=点卡 or 0
	self.玩家id=nil
	self.选中=0
	self.选中编号=0
	self:重置()
	self.当前="装备"
	self.活动网格:置物品(数据[self.当前])
	self:置可见(true)
end

function 藏宝阁:刷新(数据,点卡)
	self.数据=数据 or {}
	self.点卡=点卡 or 0
	self.选中=0
	self.玩家id=nil
	self.选中编号=0
	self:重置()
	if 藏宝阁.类型 == "我的商城" then
		藏宝阁.我的数据 = {}
		藏宝阁.当前="我的"
		for i=1,#藏宝阁.数据.装备  do
			if 藏宝阁.数据.装备[i].所有者 == 多开数据[当前].角色信息.id then
				table.insert(藏宝阁.我的数据,藏宝阁.数据.装备[i])
				藏宝阁.我的数据[#藏宝阁.我的数据].子类型="装备商城"
				藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
				藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=1
			end
		end
		for i=1,#藏宝阁.数据.灵饰  do
			if 藏宝阁.数据.灵饰[i].所有者 == 多开数据[当前].角色信息.id then
				table.insert(藏宝阁.我的数据,藏宝阁.数据.灵饰[i])
				藏宝阁.我的数据[#藏宝阁.我的数据].子类型="灵饰商城"
				藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
				藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=3
			end
		end
		for i=1,#藏宝阁.数据.其他  do
			if 藏宝阁.数据.其他[i].所有者 == 多开数据[当前].角色信息.id then
				table.insert(藏宝阁.我的数据,藏宝阁.数据.其他[i])
				藏宝阁.我的数据[#藏宝阁.我的数据].子类型="道具商城"
				藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
				藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=6
			end
		end
		for i=1,#藏宝阁.数据.召唤兽  do
			if 藏宝阁.数据.召唤兽[i].所有者 == 多开数据[当前].角色信息.id then
				table.insert(藏宝阁.我的数据,藏宝阁.数据.召唤兽[i])
				藏宝阁.我的数据[#藏宝阁.我的数据].子类型="宝宝商城"
				藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
				藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=4
			end
		end
		for i=1,#藏宝阁.数据.银两  do
			if 藏宝阁.数据.银两[i].所有者 == 多开数据[当前].角色信息.id then
				table.insert(藏宝阁.我的数据,藏宝阁.数据.银两[i])
				藏宝阁.我的数据[#藏宝阁.我的数据].子类型="银两商城"
				藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
				藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=5
			end
		end

		藏宝阁.活动网格:置物品1(藏宝阁.我的数据)
		藏宝阁:重置()
	else
		self.活动网格:置物品(数据[self.当前])
	end
end


function 藏宝阁:重置()
	local nsf = require('SDL.图像')(760,410)
    if nsf:渲染开始() then
        置窗口背景("藏宝阁",0,12,750,400,true):显示(0,0)
		取白色背景(0, 0, 710, 300,true):显示(15,75)
		字体16:置颜色(__取颜色('黑色'))
		for i,v in ipairs(菜单[self.类型]) do
			字体16:取图像(v):显示(100+i*135-135,78)
		end
		字体16:置颜色(__取颜色('白色'))
		字体16:取图像("点卡："):显示(450,380)
        字体16:取图像(self.点卡):显示(490,380)
        nsf:渲染结束()
    end
   self.图像 = nsf:到精灵()
end

local 活动网格 = 藏宝阁:创建网格("活动网格",25,100,690,270)

function 活动网格:初始化()

end

function 活动网格:左键弹起(x, y, a, b, msg)
	if 藏宝阁.选中~=0 and self.子控件[藏宝阁.选中] and self.子控件[藏宝阁.选中]._spr and self.子控件[藏宝阁.选中]._spr.物品 then
		self.子控件[藏宝阁.选中]._spr.确定 = nil
	end
	藏宝阁.选中 = a
	藏宝阁.选中编号 = self.子控件[a]._spr.物品.编号
	藏宝阁.玩家id = self.子控件[a]._spr.物品.所有者
	self.子控件[a]._spr.确定 = true
	if 藏宝阁.类型 ~= "宝宝商城" and 藏宝阁.类型 ~= "银两商城" and 藏宝阁.类型 ~= "角色商城" and (藏宝阁.类型 ~= "我的商城" or self.子控件[藏宝阁.选中]._spr.子类型 ~= "宝宝商城") then
		self.子控件[a]._spr:详情打开(x+300, y, w, h, lx, bh)
	end
end

function 活动网格:置物品(数据)
	self:创建格子(690, 67, 8, 2, #数据, 1, true)
    for i = 1,#self.子控件 do
        if 数据[i] then
            local lssj = __摊位格子.创建(当前)
			if 藏宝阁.当前=="召唤兽" then
				lssj:置物品(数据[i],"藏宝阁",nil,藏宝阁.类型)
			else
				lssj:置物品(数据[i],"藏宝阁",nil,藏宝阁.类型)
			end
			lssj.物品.编号 = i
            self.子控件[i]:置精灵(lssj)
        else
            self.子控件[i]:置精灵(nil)
        end
    end
end

function 活动网格:置物品1(数据)
	self:创建格子(690, 67, 8, 2, #数据, 1, true)
    for i = 1,#self.子控件 do
        if 数据[i] then
            local lssj = __摊位格子.创建(当前)
			if 藏宝阁.当前=="召唤兽" then
				lssj:置物品(数据[i],"藏宝阁",nil,数据[i].子类型)
			else
				lssj:置物品(数据[i],"藏宝阁",nil,数据[i].子类型)
			end
			lssj.物品.编号 = i
            self.子控件[i]:置精灵(lssj)
        else
            self.子控件[i]:置精灵(nil)
        end
    end
end

for i, v in ipairs {
    {name = '装备商城', x = 7 + 15 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '装备商城'},
    {name = '灵饰商城', x = 7 + 115 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '灵饰商城'},
    {name = '宝宝商城', x = 7 + 215 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '宝宝商城'},
    {name = '银两商城', x = 7 + 315 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '银两商城'},
	{name = '道具商城', x = 7 + 415 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '道具商城'},
	{name = '角色商城', x = 7 + 515 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '角色商城'},
	{name = '我的商城', x = 7 + 615 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '我的商城'},
	{name = '寄存取回', x = 7 + 630 ,y = 375 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), tcp2=__res:getPNGCC(1,964,459,173,35,true):置拉伸(90,30), font = '寄存取回'},
} do
    local  临时函数 = 藏宝阁:创建我的单选按钮(v.tcp,v.tcp2,v.name,v.x,v.y,v.font)
    function 临时函数:左键弹起(x, y)
		if v.name == "装备商城" then
			藏宝阁.当前="装备"
			藏宝阁.类型=v.name
			藏宝阁.编号=1
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "灵饰商城" then
			藏宝阁.当前="灵饰"
			藏宝阁.编号=3
			藏宝阁.类型=v.name
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "宝宝商城" then
			藏宝阁.当前="召唤兽"
			藏宝阁.编号=4
			藏宝阁.类型=v.name
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "银两商城" then
			藏宝阁.当前="银两"
			藏宝阁.编号=5
			藏宝阁.类型=v.name
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "角色商城" then
			藏宝阁.当前="角色"
			藏宝阁.编号=7
			藏宝阁.类型=v.name
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "道具商城" then
			藏宝阁.当前="其他"
			藏宝阁.类型=v.name
			藏宝阁.编号=6
			藏宝阁.活动网格:置物品(藏宝阁.数据[藏宝阁.当前])
			藏宝阁:重置()
		elseif v.name == "寄存取回" then
			发送数据(当前,63.1)
		elseif v.name == "我的商城" then
			藏宝阁.我的数据 = {}
			藏宝阁.类型=v.name
			藏宝阁.当前="我的"
			for i=1,#藏宝阁.数据.装备  do
				if 藏宝阁.数据.装备[i].所有者 == 多开数据[当前].角色信息.id then
					table.insert(藏宝阁.我的数据,藏宝阁.数据.装备[i])
					藏宝阁.我的数据[#藏宝阁.我的数据].子类型="装备商城"
					藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
					藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=1
				end
			end
            for i=1,#藏宝阁.数据.灵饰  do
				if 藏宝阁.数据.灵饰[i].所有者 == 多开数据[当前].角色信息.id then
					table.insert(藏宝阁.我的数据,藏宝阁.数据.灵饰[i])
					藏宝阁.我的数据[#藏宝阁.我的数据].子类型="灵饰商城"
					藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
					藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=3
				end
			end
			for i=1,#藏宝阁.数据.其他  do
				if 藏宝阁.数据.其他[i].所有者 == 多开数据[当前].角色信息.id then
					table.insert(藏宝阁.我的数据,藏宝阁.数据.其他[i])
					藏宝阁.我的数据[#藏宝阁.我的数据].子类型="道具商城"
					藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
					藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=6
				end
			end
			for i=1,#藏宝阁.数据.召唤兽  do
				if 藏宝阁.数据.召唤兽[i].所有者 == 多开数据[当前].角色信息.id then
					table.insert(藏宝阁.我的数据,藏宝阁.数据.召唤兽[i])
					藏宝阁.我的数据[#藏宝阁.我的数据].子类型="宝宝商城"
					藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
					藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=4
				end
			end
			for i=1,#藏宝阁.数据.银两  do
				if 藏宝阁.数据.银两[i].所有者 == 多开数据[当前].角色信息.id then
					table.insert(藏宝阁.我的数据,藏宝阁.数据.银两[i])
					藏宝阁.我的数据[#藏宝阁.我的数据].子类型="银两商城"
					藏宝阁.我的数据[#藏宝阁.我的数据].编号=i
					藏宝阁.我的数据[#藏宝阁.我的数据].界面类型=5
				end
			end
			藏宝阁.活动网格:置物品1(藏宝阁.我的数据)
			藏宝阁:重置()
		end
    end
end

for i, v in ipairs {
	-- {name = '价格排序', x = 7 + 615 ,y = 43 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), font = '价格排序'},
	{name = '我要出售', x = 7 + 15 ,y = 375 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), font = '我要出售'},
	{name = '取回商品', x = 7 + 115 ,y = 375 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), font = '取回商品'},
	{name = '购买商品', x = 7 + 215 ,y = 375 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), font = '购买商品'},
	{name = '查看宠物', x = 7 + 315 ,y = 375 , tcp = __res:getPNGCC(1,449,28,174,35,true):置拉伸(90,30), font = '查看宠物'},
} do
    local  临时函数 = 藏宝阁:创建我的按钮(v.tcp,v.name,v.x,v.y,v.font)
    function 临时函数:左键弹起(x, y)
		if v.name == "价格排序" then
			if #藏宝阁.数据 >= 2 then
				if 藏宝阁.数据[1].价格 >= 藏宝阁.数据[2].价格 then
					table.sort(藏宝阁.数据, function (a, b)
						return a.价格 < b.价格
					end)
				else
					table.sort(藏宝阁.数据, function (a, b)
						return a.价格 > b.价格
					end)
				end
				藏宝阁.活动网格:置物品(藏宝阁.数据)
			end
		elseif v.name == "购买商品" then
			if 藏宝阁.选中 == 0 or 藏宝阁.选中 ==nil then
				多开数据[当前 or self and self.当前].__UI弹出.提示框:打开('#你还未选择商品')
			else
			   发送数据(当前,60.9,{类型=藏宝阁.编号,文本="购买商品",编号=藏宝阁.选中编号,购买id=藏宝阁.玩家id})
			end
		elseif v.name == "查看宠物" then
			if (藏宝阁.类型 == "宝宝商城" or 藏宝阁.类型 == "我的商城") and 藏宝阁.活动网格.子控件[藏宝阁.选中] and 藏宝阁.活动网格.子控件[藏宝阁.选中]._spr and 藏宝阁.活动网格.子控件[藏宝阁.选中]._spr.物品.模型 then
				多开数据[当前].__UI界面.窗口层.召唤兽查看:打开(藏宝阁.活动网格.子控件[藏宝阁.选中]._spr.物品)
			end
		elseif v.name == "我要出售" then
			local function 回调处理(i,v)
				if v[i] == "藏宝阁上架货币" then
					发送数据(当前,60.3)
				elseif v[i] == "藏宝阁上架物品" then
					发送数据(当前,60.1)
				elseif v[i] == "藏宝阁上架召唤兽" then
					发送数据(当前,60.2)
				elseif v[i] == "藏宝阁上架角色" then
					多开数据[当前].__UI界面.窗口层.输入栏:打开("上架角色", "请输出价格")
 				end
			end
            多开数据[当前].__UI界面.窗口层.对话栏:打开({模型="普陀_接引仙女",名称=多开数据[当前].角色信息.名称,对话="请选择上架商品类型",选项={"藏宝阁上架货币","藏宝阁上架物品","藏宝阁上架召唤兽","藏宝阁上架角色","我再考虑考虑"},回调处理=回调处理,选中名称=""})
		elseif v.name == "取回商品" then
			if 藏宝阁.选中 == 0 or 藏宝阁.选中 ==nil then
				多开数据[当前 or self and self.当前].__UI弹出.提示框:打开('#你还未选择商品')
			elseif 藏宝阁.类型 ~= "我的商城" and 藏宝阁.类型 ~= "寄存取回" then
				多开数据[当前 or self and self.当前].__UI弹出.提示框:打开('#请在我的商城/寄存取回中取回物品')
			else
				if 藏宝阁.类型 == "我的商城" then
			   		发送数据(当前,60.4,{编号=藏宝阁.我的数据[藏宝阁.选中].编号,类型=藏宝阁.我的数据[藏宝阁.选中].界面类型})
				elseif 藏宝阁.类型 == "寄存取回" then
					发送数据(当前,63.2,{编号=藏宝阁.寄存数据[藏宝阁.选中].编号})
				end
			end
		end
    end
end

function 藏宝阁:寄存处理(数据)
	藏宝阁.当前="寄存"
	藏宝阁.类型="寄存取回"
	藏宝阁.寄存数据 = {}
	for i,v in ipairs(数据) do
		if v.类型=="点卡" then
			藏宝阁.寄存数据[#藏宝阁.寄存数据+1] = {名称="点卡",数额=v.数额,编号=i}
			藏宝阁.寄存数据[#藏宝阁.寄存数据].编号=i
			藏宝阁.寄存数据[#藏宝阁.寄存数据].子类型="银两商城"
		elseif v.类型=="银子" then
			藏宝阁.寄存数据[#藏宝阁.寄存数据+1] = {名称="银两",数额=v.数额,编号=i}
			藏宝阁.寄存数据[#藏宝阁.寄存数据].编号=i
			藏宝阁.寄存数据[#藏宝阁.寄存数据].子类型="银两商城"
		elseif v.类型=="物品" then
			藏宝阁.寄存数据[#藏宝阁.寄存数据+1] = v
			藏宝阁.寄存数据[#藏宝阁.寄存数据].编号=i
			藏宝阁.寄存数据[#藏宝阁.寄存数据].子类型="道具商城"
		elseif v.类型=="召唤兽" then
			藏宝阁.寄存数据[#藏宝阁.寄存数据+1] = v
			藏宝阁.寄存数据[#藏宝阁.寄存数据].编号=i
			藏宝阁.寄存数据[#藏宝阁.寄存数据].子类型="宝宝商城"
		end
	end
	藏宝阁.活动网格:置物品1(藏宝阁.寄存数据)
	藏宝阁:重置()
end

local 关闭 = 藏宝阁:创建我的按钮(__res:getPNGCC(1,401,0,46,46),"关闭",700,5)
function 关闭:左键弹起(x,y,msg)
    藏宝阁:置可见(false)
end

